import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace AiFormTemplatesApi {
  /** 表单模版信息 */
  export interface FormTemplates {
    id: number; // 表单id
    code: string; // 表单编号
    title: string; // 表单标题
    description: string; // 表单描述
    usageDescription: string; // 使用说明
    categoryId: number; // 分类ID
    versionNum: string; // 版本号
    status: number; // 状态:0-草稿、1-审核中、2-已发布、3-已弃用、4-已归档
    systemFlag: boolean; // 是否系统内置
    sort: number; // 排序
    icon: string; // 图标
    color: string; // 颜色
    metadata: string; // 其他参数
  }
}

/** 查询表单模版分页 */
export function getFormTemplatesPage(
  data: PageParam,
  desensitize: boolean,
  encrypt: boolean,
) {
  return requestClient.post<PageResult<AiFormTemplatesApi.FormTemplates>>(
    '/ai/form-templates/page',
    data,
    { desensitize, encrypt },
  );
}

/** 查询表单模版详情 */
export function getFormTemplates(id: number) {
  return requestClient.get<AiFormTemplatesApi.FormTemplates>(
    `/ai/form-templates/get?id=${id}`,
  );
}

/** 新增表单模版 */
export function createFormTemplates(data: AiFormTemplatesApi.FormTemplates) {
  return requestClient.post('/ai/form-templates/create', data);
}

/** 修改表单模版 */
export function updateFormTemplates(data: AiFormTemplatesApi.FormTemplates) {
  return requestClient.put('/ai/form-templates/update', data);
}

/** 删除表单模版 */
export function deleteFormTemplates(id: number) {
  return requestClient.delete(`/ai/form-templates/delete?id=${id}`);
}

/** 批量删除表单模版 */
export function deleteFormTemplatesList(ids: number[]) {
  return requestClient.delete(
    `/ai/form-templates/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出表单模版 */
export function exportFormTemplates(params: any) {
  return requestClient.download('/ai/form-templates/export-excel', { params });
}
